package com.shop.cereshop.commons.domain.points;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 积分规则配置实体类
 * @author lx
 */
@Data
@ApiModel(description = "积分规则配置实体类")
@TableName("cere_points_rule")
public class CerePointsRule {

  /**
   * 规则ID
   */
  @ApiModelProperty(value = "规则ID")
  @TableId(type = IdType.AUTO)
  private Long ruleId;

  /**
   * 规则名称（如：每日任务积分获取规则）
   */
  @ApiModelProperty(value = "规则名称")
  private String ruleName;

  /**
   * 规则描述（如：每完成1个每日任务可获得10-50积分）
   */
  @ApiModelProperty(value = "规则描述")
  private String ruleDesc;

  /**
   * 阈值（如：释放规则中的积分基数）
   */
  @ApiModelProperty(value = "阈值")
  private BigDecimal thresholdValue;

  /**
   * 比例（如：释放比例20%）
   */
  @ApiModelProperty(value = "比例")
  private BigDecimal rate;

  /**
   * 是否启用：1-启用，0-禁用
   */
  @ApiModelProperty(value = "是否启用：1-启用，0-禁用")
  private Integer state;

  /**
   * 创建时间
   */
  @ApiModelProperty(value = "创建时间")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  private LocalDateTime createTime;

  /**
   * 更新时间
   */
  @ApiModelProperty(value = "更新时间")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  private LocalDateTime updateTime;
}